// 封装商品管理请求的axios
import { message } from "antd";
import axios from "axios";

const requestPro = axios.create({
  baseURL: "http://gmall-h5-api.atguigu.cn",
  timeout: 10000,
});

// 请求拦截器
requestPro.interceptors.request.use((config) => {
  return config;
});

// 响应拦截器
requestPro.interceptors.response.use(
  (response) => {
    if (response.data.code === 200) {
      return response.data.data;
    } else {
      // 请求操作成功返回响应体json中data属性数据=>响应拦截器的成功回调
      const errorMsg =
        response.data.data || response.data.message || "请求未知错误";
      message.error(errorMsg);

      // 将错误向下传递=>传递给具体的请求
      return Promise.reject(new Error(errorMsg));
    }
  },
  // 请求失败，统一错误提示=>响应拦截器的失败回调
  (error) => {
    console.log("响应拦截器失败的回调", error);

    message.error(error.message || "请求未知错误");
    throw error;
  }
);

export default requestPro;
